<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>


    <script>

        // console.log(a) ;
        // var a = 3 ;
        // fn() ;
        // function fn() {
        //     console.log(b) ;
        //     var b = 4 ;  
        // }


        // var a ;
        // function fn() {
        //     // console.log(b) ;
        //     // var b = 4 ;
        //     var b ;
        //     console.log(b) ;
        //     b = 4 ;
        // }
        // console.log(a) ;
        // a = 3 ; 
        // fn() ;



        // 看程序读结果的时候
        //   1 提升var --- 不提升赋值
        //   2 提升函数
        //   3 函数内部也存在预编译
        //   4 变量名和函数名相同时，也会存在代码覆盖的问题
        //   5 全局变量和布局变量同名是，函数内部优先使用自己的，外部使用全局的




        // console.log(fo) ;
        // function fo() {
        //     console.log(c) ;
        //     var c = 3 ;
        // }
        // var c = 4 ;
        // fo() ;
        // console.log(c) ;


        // var c ;   // 全局变量c
        // function fo() {
        //     var c ;    // 局部变量c
        //     console.log(c) ;
        //     c = 3 ;
        // }
        // console.log(fo) ;
        // c = 4 ;   // 全局变量c
        // fo() ;
        // console.log(c) ;   // 全局变量c





        console.log(add) ;
        add() ;
        console.log(d) ;
        function add() {
            console.log(c) ;
            var c = 1 ;
            d = 4 ;
        }
        var d = 6 ;
        console.log(d) ;
        console.log(c) ;
        
        
        
        

    </script>
    
</body>
</html>